home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
glass
/
glass.lha
/
GLASS
/
widgets
/
XtArgs.h
< prev
Wrap
C/C++ Source or Header
|
1991-02-01
|
965b
|
38 lines
/*
File: XtArgs.h
Defines macros for easy argument list handling
*/
#ifndef MaxArgs
#define MaxArgs 20
#endif
#ifndef MaxCallbacks
#define MaxCallbacks 20
#endif
static XtCallbackRec WidgetCallbacks[MaxCallbacks];
static Arg WidgetArgs[MaxArgs];
static int NrOfCallbacks, FirstCallback;
static int NrOfArgs;
/*
Now define some access macros on the widget arguments
*/
#define StartArgs NrOfArgs = NrOfCallbacks = FirstCallback = 0
#define SetArg(r,v) XtSetArg (WidgetArgs [NrOfArgs], r, v); NrOfArgs++
#define SetCallback(func, value) \
WidgetCallbacks [NrOfCallbacks].callback = (XtCallbackProc) func;\
WidgetCallbacks [NrOfCallbacks++].closure = (caddr_t) value
#define UseCallback(resource) \
SetCallback (NULL, NULL); \
SetArg (resource, &WidgetCallbacks [FirstCallback]);\
FirstCallback = NrOfCallbacks
#define Callback(proc) \
SetCallback(proc,NULL); \
UseCallback(XtNcallback)
#define UseArgs WidgetArgs, NrOfArgs
#define NoArgs NULL,0